(defpackage #:bcgreek-test
  (:use #:cl #:bcgreek))

(in-package #:bcgreek-test)

(defparameter *tests*
  '(("abgdezhqiklmncoprstufxywv" "αβγδεζηθικλμνξοπρστυφχψωϝ")
    ("ABGDEZHQIKLMNCOPRSTUFXYWv" "αβγδεζηθικλμνξοπρστυφχψωϝ")
    ("s" "ς")
    ("s " "ς ")
    ("sa" "σα")
    ("s1" "σ")
    ("s2" "ς")
    ("s3" "ϲ")
    ("a/" "ά")
    ("e\\" "ὲ")
    ("i=" "ῖ")
    ("o)" "ὀ")
    ("u(" "ὑ")
    ("h|" "ῃ")
    ("w)|=" "ᾦ")
    ("w|=)" "ᾦ")
    ("i+" "ϊ")
    ("a&" "ᾱ")
    ("a'" "ᾰ")
    ("r(r)" "ῥῤ")
    ("*a*b*g*d*e*z*h*q*i*k*l*m*n*c*o*p*r*s*t*u*f*x*y*w*v" "ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩϜ")
    ("*)/a" "Ἄ")
    ("*/" "*/")
    ("*/p" "*/π")
    ("mh=nin a)/eide qea\\ *phlhi+a/dew *)axilh=os" "μῆνιν ἄειδε θεὰ Πηληϊάδεω Ἀχιλῆος")
    )
  )

(defun test ()
  (loop for (bc greek) in *tests*
        for decoded = (bcgreek-decode bc)
        do (assert (string= decoded greek))
        finally (return t)))


